<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        //function impar( $num )
//{
        // return ( $num & 1 ) ? true : false;
//}
//function par( $num )
//{
//    return ( !( $num & 1 ) );
//}
//var_dump( par( 3 ) );
        // 09.1:   As funções são um pedaço de código com o objetivo específico,
        //       encapsulado sob uma estrutura única que recebe um conjunto de
        //       parâmetros e retorna ou não um determinado dado. Uma função é
        //       declarada uma única vez, mas pode ser utilizada diversas vezes.
        //         Podemos declarar uma função com o uso do operado "funtion"
        //       seguido do nome que queremos obrigatoriamente atribuir, sem
        //       espaços em branco e iniciando sempre com uma letra.
        //09.2:   As Variáveis Globais, são variáveis declaradas fora do escopo
        //      de uma função , porém tem visibilidade (pode ser acessada) ao
        //      contexto de uma função sem passá-la como parâmetro.Podemos  
        //      chamá-lo com o uso do termo "global".
        //        As variáveis locais são aquelas declaradas dentro de uma fun-
        //      ção e não tem visibilidade fora dela. Podemos chamá-lo com o
        //      uso do "teste ()" .  
        //09.3:     A passagem de parâmetros em PHP é feita por Valor, ou seja,
        //       se o conteúdo da variável for alterado, essa alteração não
        //       afeta a variável original ou por Parâmetro, é só colocar o
        //       operador "&" na fente do do parâmetro que quera alterá-lo.         
        //09.4:     São as funções "func_get_args()"
        //       e a função "func_num_args()".
        //09.5:     Valor de Retorno é uma função que pode opicionalmente
        //      retornar um valor, ou simplismente executar os comandos
        //      e não retornar valor algum. E só usar o operador "return".
        //09.6:     Recursão ou função recursiva é uma função que "faz
        //      a chamada" de si mesma na sua execução.
        //a)
        $x = 121;
        if ($x % 2 == 0) {
            echo $x . ', ' . "é par";
        } else {
            echo $x . ', ' . "é impar";
        }


        echo "<br>";

        //b)
        function Fatorial($n) {
            if ($n == 1)
                return $n;
            else
                return $n * Fatorial($n - 1);
        }

        echo Fatorial(10) . "<br>";

        $numero = 10;

        //c)
        for ($n = 2; $n <= 100; $n++) {
            $primo = true;
            for ($x = 2; $x < $n; $x++) {
                if ($n % $x == 0) {
                    $primo = false;
                    break;
                }
            }
            if ($primo) {
                echo ' - ' . $n;
            }
        }
        echo '<br>';
    
        //c
        $num = 1234567891;
if(nPrimo($num))
{
	echo "$num é primo.";
}
else
{
	echo "$num não é primo.";
}
function nPrimo($numero)
{   //com $numero > 2
    $p = 2 ;
    while($numero % $p != 0 && $p < sqrt($numero) ) $p+=1 ;    
    // 1 = Primo / 0 = ñ Primo
    return ($numero%$p==0) ? 0 : 1 ;
}
        
        ?>
    </body>
</html>

